import { defineStore } from 'pinia'
import { reqLogin, reqLogout, reqUserInfo } from '@/api/center'
import { showDialog } from 'vant'
import type { UserInfoData } from '@/api/center'
export const useCategoryStore = defineStore('center', {
  state: (): UserInfoData => ({
    // 账号：用于渲染center用户名
    name: '',
    // 密码
    passwd: '',
    // 用于存储token
    token: localStorage.getItem('token_key') ||'',
    // 用户头像
    headImg: ''
  }),
  actions: {
     // 请求登录
     async getLogin(phone: number | string, password: string) {
     
      
      // 发送请求
      const res = await reqLogin(phone, password)

      if (res.code === 200) {
        // 储存 token 到 pinia
        // console.log(res.data.token);
        
        // this.token = res.data.token
        // 储存 token 到本地
        localStorage.setItem('token_key',res.data.token)
      
      }
      if (res.code !== 200) {
        showDialog({
          message: `${res.message}`
        }).then(() => {})
      }
    },
    // 存储用户信息
    async getUserInfo() {
      
      try {
        // 请求用户信息
        const res = await reqUserInfo()
        if (res.code === 200) {
          // 存储用户姓名
          
          
          this.name = res.data.name
          // 存储用户密码
          this.passwd = res.data.passwd
          // 存储用户图片
          this.headImg = res.data.headImg
        }
      } catch (error) {
        return Promise.reject(new Error('数据获取失败'))
      }
    },
    // 请求退出
    async getLogOut() {
      await reqLogout()
      // 清除用户信息
      this.name = ''
      // 清除图片信息
      this.headImg = ''
      // 清除 pinia 的 token
      this.token = ''
      // 清除用户密码
      this.passwd = ''
      // 清除本地的 token
      localStorage.removeItem('token_key')
    }
  },
  getters: {}
})
